package com.Blog.www.utils;

import com.Blog.www.constant.DataConstant;

import java.nio.charset.StandardCharsets;
import java.util.regex.Pattern;

/**
 * @author 君未洋
 */
public class DataExamine {

    /**
     * 数据校验是否数字用方法
     *
     * @param number 要输入校验的数据
     * @return 有问题返回true, 没问题返回false;
     */
    public Boolean numberExamine(String number) {
        if (number == null || "".equals(number)) {
            return true;
        }
        String pattern = "^\\d*";
        return !Pattern.matches(pattern, number);
    }

    /**
     * 数据校验是否数字用方法
     *
     * @param number 要输入校验的数据
     * @return 有问题返回true, 没问题返回false;
     */
    public Boolean numberExamine(String[] number) {
        if (number == null || number.length == 0) {
            return true;
        }
        String pattern = "^\\d*";
        boolean flag = true;
        for (String s : number) {
            flag = !Pattern.matches(pattern, s);
            if (flag) {
                return true;
            }
        }
        return false;
    }

    /**
     * 文件格式校验
     *
     * @param filename 要校验的文件名称
     * @param fileForm 要校验的文件的后缀
     * @return 符合返回false, 不对劲返回true;
     */
    public Boolean fileExamine(String filename, String fileForm) {
        if (filename == null || "".equals(filename) || fileForm == null || "".equals(fileForm)) {
            return true;
        }
        String[] split = filename.split(".");
        //靠一个点来分隔
        if (split.length == 0) {
            return true;
        }
        if (fileForm.equals(split[split.length - 1])) {
            return false;
        }
        return true;
    }

    /**
     * 校验输入的密码格式
     *
     * @param password 输入的密码
     * @return 返回是否符合条件
     */
    public Boolean passwordExamine(String password) {
        if (password == null || "".equals(password)) {
            return true;
        }
        String pattern = "^[A-Za-z0-9]+$";
        return !Pattern.matches(pattern, password);
    }

    public Boolean titleExamine(String title) {
        int length = title.getBytes(StandardCharsets.UTF_8).length;
        if (length <= DataConstant.DATE_TITLE_B && length >= DataConstant.DATE_TITLE_A) {
            return false;
        }
        return true;
    }

    public Boolean contentExamine(String content) {

        return false;
    }
}
